// 用来学习dart语法的

import 'dart:math';

import 'package:jtlf/proto/account_balance.pb.dart';

main(List<String> args) {
  print('hello world');


  List<int> list = [1, 2, 3];
  Set<int> set = <int>{1, 2, 3};
  Set<int> set2 = {1, 2, 3}; // set用大括号表示呢
  Map<String, int> map = <String, int>{};
  map['1'] = 22;
  const a = 22; // 定义常量，必须立即初始化
  final c; // 定义常量，可以延迟初始化，但是也只能初始化一次
  c = 345;
  var map2 = {}; // 用大括号初始化map
  map2['dd'] = 55;
  for (MapEntry entry in map2.entries) {
    print('${entry.key}=${entry.value}'); // 字符串插值
  }
  print('$map'); // 可以直接打印map
  Object obj = 34.5;
  obj = 'aaa';
  dynamic cc = 45;
  cc = '22'; // dynamic and object定义的变量，可以改变类型，其他的不可以

  AccountBalance balance = AccountBalance.create();
  balance.accountPeriod = '2025-02';
  balance.endCreditBalance = 365.3;
  final bytes = balance.writeToBuffer();
  final bal =  AccountBalance.fromBuffer(bytes);
  final json = balance.writeToJson();
  print(json);
  final bean2 = AccountBalance.fromJson(json);
  print(bal.accountPeriod);
}

class Man {
  late String name;
  late int age;

  // 这种是OK的
  Man(this.name, this.age); // 这种可以赋值null
  // Man({ required this.name, required this.age }); // 这个好像不可以

  // Man(String name, int age) { // 这种是标准的构造函数
  //   this.name = name;
  //   this.age = age;
  // }
}